package geditor.common {
import flash.display.DisplayObject;
import flash.events.IEventDispatcher;

import geditor.*;

import mx.core.UIComponent;

/**
 * Описание компонента
 */
[Event(name="change",type="geditor.events.ChangeEvent")]
[Event(name="load",type="flash.events.Event")]
[Event(name="unload",type="flash.events.Event")]
public interface DrawComponent extends IEventDispatcher {
    /**
     * UIComponent для отображения на scalable панели
     * @return UIComponent
     */
    function get scalableDisplay():UIComponent;

    /**
     * UIComponent для отображения на notScalable панели
     * @return UIComponent
     */
    function get notScalableDisplay():UIComponent;

    /**
     * Метод для уведомления компонента о DrawTool, в котором он создан
     * @param val родитель компонента DrawTool
     */
    function set tool(val:DrawTool):void;

    /**
     * Говорит компоненту перерисовать себя (например, в случае изменения масштаба)
     */
    function refresh():void;

    /**
     * Определяет z-index компонента. Чем больше индекс, тем он находится ближе к верху
     * @return z-index
     */
    function get zIndex():int;
}
}